package main

import (
	"encoding/json"
	"fmt"
)

// Student 学生
type Student struct {
	ID     int    `json:"id"`
	Gender string `json:"gender"`
	Name   string `json:"name"`
}

func main() {
	// stu1 实例化一个student的对象
	var stu1 = Student{
		ID:     1,
		Gender: "男",
		Name:   "Jack",
	}
	// json 序列化
	v, err := json.Marshal(stu1)
	if err != nil {
		fmt.Println("JSON格式化出错拉！")
		fmt.Println(err)
	}
	fmt.Println(v)                 // []byte
	fmt.Printf("%#s\n", string(v)) // 字节切片转换成字符串

	// json 反序列化
	str := "{\"id\":1,\"gender\":\"男\",\"name\":\"Jack\"}"
	var stu2 = &Student{}
	// 反序列化 需要一个byte的切片
	json.Unmarshal([]byte(str), stu2)
	fmt.Println(stu2)
	fmt.Printf("%T\n", stu2)
}
